﻿//using Framework.Common.Cache;

//namespace Framework.Common.Ioc
//{
//    public class CacheInterceptor : IInterceptor
//    {
//        public void Intercept(IInvocation invocation)
//        {
//            if (invocation.GetConcreteMethod().Re == typeof(void))
//            {
//                invocation.Proceed();
//                return;
//            }
//            string key = Formatter.Format(invocation.InvocationTarget, invocation.Arguments, invocation.Method);
//            var obj = CacheFactory.Instance.Get(key);
//            if (obj != null)
//            {
//                invocation.ReturnValue = obj;
//            }
//            else
//            {
//                invocation.Proceed();
//                obj = invocation.ReturnValue;
//                if (obj != null)
//                {
//                    CacheFactory.Instance.Set(key, obj);
//                }
//            }
//        }
//    }
//}
